package com.dkm.orproject.dkmoa.service.serviceimpl;

import com.dkm.orproject.dkmoa.dao.OaWorkSummaryMapper;
import com.dkm.orproject.dkmoa.domain.OaWorkSummary;
import com.dkm.orproject.dkmoa.service.OaWorkSummaryService;
import com.dkm.orproject.utils.utils.IdToobtainUtils;
import com.github.pagehelper.PageHelper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;
import java.util.List;

/**
 * @ClassName : OaWorkSummaryServiceImpl  //类名
 * @Description : 工作总结Service实现类  //描述
 * @Author : 易嵘  //作者
 * @Date: 2020-11-11 15:58  //时间
 */
@Service
@Transactional(rollbackFor = Exception.class)
public class OaWorkSummaryServiceImpl implements OaWorkSummaryService {

    /**
     * 工作总结Mapper
     */
    @Resource
    OaWorkSummaryMapper workSummaryMapper;

    /**
     * id生成工具
     */
    @Resource
    IdToobtainUtils idToobtainUtils;

    /**
     * 工作总结新增
     * @param record 工作总结模型
     * @return 回调函数
     */
    @Override
    public int insertSelective(OaWorkSummary record) {
        return workSummaryMapper.insertSelective(record);
    }

    /**
     * 工作总结id删除
     * @param pkWorkSummaryId 工作总结id
     * @return 回调函数
     */
    @Override
    public int deleteByPrimaryKey(Long pkWorkSummaryId) {
        return workSummaryMapper.deleteByPrimaryKey(pkWorkSummaryId);
    }

    /**
     * id查询
     * @param pkWorkSummaryId 工作总结id
     * @return 工作总结模型
     */
    @Override
    public OaWorkSummary selectByPrimaryKey(Long pkWorkSummaryId) {
        return workSummaryMapper.selectByPrimaryKey(pkWorkSummaryId);
    }

    /**
     * 工作总结修改
     * @param record 工作总结模型
     * @return 回调函数
     */
       @Override
    public int updateByPrimaryKeySelective(OaWorkSummary record) {
        return workSummaryMapper.updateByPrimaryKeySelective(record);
    }

    /**
     * 批量删除
     * @param list 工作总结id集合
     * @return 回调函数
     */
    @Override
    public int deleteAll(List<Long> list) {
        return workSummaryMapper.deleteAll(list);
    }

    /**
     * 工作总结查询
     * @param workSummaryName 工作总结名称
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @param page 当前页数
     * @param limit 显示行数
     * @return 结果集
     */
    @Override
    public List<OaWorkSummary> findAll(String workSummaryName,Long personnelId, String startTime, String endTime, Integer page, Integer limit) {
        PageHelper.startPage(page,limit);
        return workSummaryMapper.findAll(workSummaryName,personnelId,startTime,endTime);
    }

    /**
     * 总行数
     * @param workSummaryName 总做总结名称
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return 总行数
     */
    @Override
    public Long rowCount(String workSummaryName,Long personnelId, String startTime, String endTime) {
        return workSummaryMapper.rowCount(workSummaryName,personnelId,startTime,endTime);
    }

    /**
     * 工作总结新增
     * @param workSummary 工作总结模型
     * @param personnelName 操作人名称
     * @return 回调函数
     */
    @Override
    public int add(OaWorkSummary workSummary, String personnelName) {
        workSummary.setPkWorkSummaryId(idToobtainUtils.getNumberId());
        workSummary.setCreatedBy(personnelName);
        workSummary.setWorkSummaryName(personnelName+"的工作总结");
        workSummary.setIsRevision("1");
        return workSummaryMapper.insertSelective(workSummary);
    }

    /**
     * 批量查询id查询
     * @param list 工作总结id集
     * @return 查询结果集
     */
    @Override
    public List<OaWorkSummary> selectAll(List<Long> list) {
        return workSummaryMapper.selectAll(list);
    }

}
